from django.db import models
import uuid
import re
# Create your models here.
"""
Django 数据库迁移命令: 
python manage.py makemigrations
python manage.py migrate
.venv\Scripts\activate
"""

class User(models.Model):
    user_id = models.CharField(max_length=255, primary_key=True)
    # 用户名
    user_name = models.CharField(max_length=255, null=True, blank=True, default='黑寡妇用户')
    # 用户账号
    account = models.CharField(max_length=255)
    # 用户密码
    password = models.CharField(max_length=255)
    # 创建时间
    create_time = models.DateTimeField(auto_now_add=True)
    # 更新时间
    update_time = models.DateTimeField(auto_now=True)
    def save(self, *args, **kwargs):
        if not self.user_id:
            self.user_id = str(uuid.uuid4())
        # 用户密码只能存在6-12位,并且只能是大小写英文、数字、@符号
        if not re.match(r'^[a-zA-Z0-9@]{6,12}$', self.password):
            raise ValueError("用户密码只能存在6-12位,并且只能是大小写英文、数字、@符号")
        # 用户账号只能是6-11位数，只能是数字
        if not re.match(r'^\d{6,11}$', self.account):
            raise ValueError("用户账号只能是6-11位数，只能是数字")
        super().save(*args, **kwargs)
